package reflect;

import java.lang.reflect.Field;

/**
 * Field类 是类的属性，成员变量
 * getField(String name)参数是你要修改的属性的名字（属性名） 这个仅能访问公共属性
 * getDeclaredField则是获取私有属性
 *
 * Field类的方法：set (Object obj, Object value);返回值是void不需要接收，value就是给指定属性（谁点的set）赋的值
 * 同样有setAccessible (boolean flag);
 */
public class ReflectDemo8 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException {
        //传统方法
        Teacher teacher = new Teacher();
        teacher.name="王克晶";
        System.out.println(teacher);

        Class cls = Class.forName("reflect.Teacher");
        Object o = cls.newInstance();
        Field field = cls.getDeclaredField("name");
        field.set(o,"范传奇");
        System.out.println(o);
    }
}
